Καλησπέρα σε όλους σας,
αυτό είναι το πρώτο μου post καθώς ξεκίνησα να ασχολούμαι με desktop εφαρμογές μετά από εμπειρία σε online εφαρμογές (php, mysql, javascript).
Έχω ξεκινήσει μια εφαρμογή σε WPF C# έχοντας ορίσει ένα stackpanel που περιέχει ένα Listview με το οποίο προβάλω σωστά τα περιεχόμενα ενός πίνακα της βάσης μου (SQL SERVER 2005). Από όσο είδα γίνεται με πολλούς άλλους τρόπους (πχ datagrid) αλλά το θεώρησα πιο απλό με list και μου φαίνεται καλό προς το παρόν.
Το xaml μου έχει ως εξής:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <StackPanel DataContext="{Binding Source={StaticResource TaskView}}"> <ListView x:Name="ListViewOfTasks" AlternationCount="2" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Source={StaticResource TaskView}}" Background="Transparent" Width="400" VerticalAlignment="Top" HorizontalAlignment="Left" ScrollViewer.VerticalScrollBarVisibility="Auto" FontSize="11" Height="240"> <ListView.ItemTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition Height="20"/> <RowDefinition Height="20"/> <RowDefinition Height="20"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="270"/> <ColumnDefinition Width="100"/> </Grid.ColumnDefinitions> <TextBlock Name="textBlockName" Text="{Binding Path=name}" TextWrapping="Wrap" Foreground="White" Grid.Row="0" Grid.RowSpan="3" FontSize="11" /> <TextBlock Name="textBlockStatus" Text="{Binding Path=status}" Foreground="White" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Right" FontSize="11" /> <Image Name="buttonTaskStatus" Source="Images/ok_128.png" Height="20" Width="20" MouseLeftButtonUp="Button_Click_Change_Task_Status" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Right" /> <TextBlock Name="textBlockPriority" Text="{Binding Path=priority}" Foreground="White" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right" FontSize="11" /> <TextBlock Name="textBlockDate" Text="{Binding Path=imerominia_kataxorisis}" Foreground="White" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Right" FontSize="11" /> </Grid> </DataTemplate> </ListView.ItemTemplate> </ListView> </StackPanel> |
Όπως θα παρατηρήσετε στην γραμμή 19 έχω ορίσει ένα image με action MouseLeftButtonUp="Button_Click_Change_Task_Status" με το οποίο θέλω να κάνω κλικ στο αντίστοιχο εικονίδιο και να "τραβάω" τα περιεχόμενα του συγκεκριμένου item της λίστας. Στην συνέχεια να κάνω έναν έλεγχο (πχ στο Text του TextBlock με όνομα textBlockStatus) και αναλόγως την τιμή του να αλλάζω την τιμή κάποιου άλλου TextBlock
.
Προσπαθώντας λοιπόν να ορίσω την συνάρτηση αυτή έχω κολήσει παρακάτω:
1 2 3 4 5 6 7 8 9 10 11 | private void Button_Click_Change_Task_Status(object sender, RoutedEventArgs e) { try { ListViewOfTasks.Items.CurrentItem..... και εδώ θέλω να πάρω την τιμή κάποιου texkblock } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } |
Δεν μπορώ όμως να καταλάβω πως θα αναφερθώ στο item της λίστας που γίνεται κλικ και πως να πάρω την τιμή κάποιου textblock.
Καμιά ιδέα. θα μου φανεί χρήσιμη κάθε πληροφορία διότι δεν έχω τις απαραίτητες γνώσεις.
Ευχαριστώ.